// 引入 Vue 文件
import Vue from "vue";
//引入 vue-router 路由插件
import VueRouter from "vue-router";
//使用插件
Vue.use(VueRouter);

//引入 routes 配置
import routes from "./routes";

//重写 VueRouter.prototype 原型对象身上的 push 和 replace 方法
//第一个参数：跳转的路径参数
//第二个参数：成功的回调函数
//第三个参数：失败的回调函数
//先把 VueRouter.prototype身上的push|replace方法进行保存一份
let originPush = VueRouter.prototype.push;
let originReplace = VueRouter.prototype.replace;

//重写 push 方法
VueRouter.prototype.push = function (location, resolve, reject) {
    if (resolve && reject) {
        originPush.call(this, location, resolve, reject);
    } else {
        originPush.call(this, location, () => { }, () => { });
    }
}

//重写 replace 方法
VueRouter.prototype.replace = function (location, resolve, reject) {
    if (resolve && reject) {
        originReplace.call(this, location, resolve, reject);
    } else {
        originReplace.call(this, location, () => { }, () => { });
    }
}

//创建并暴露一个路由器
export default new VueRouter({
    //配置路由
    //routes:routes,
    routes,//简写形式，key和value一致可以简写
    //路由的滚动行为
    scrollBehavior(to, from, savedPosition) {
        //x 是水平方向，y 是垂直方向
        return { x: 0, y: 0 }
    }
})